#include <iostream>


//
// Clases
//

class cInt {
	int m_x;

public:
	cInt(int x=0) {m_x = x;}
	~cInt() {}
	void print(void) const {std::cout << "Clase cInt: " << m_x << std::endl;}
};


class cSt {
	static cInt obj;

public:
	cSt() {}
	~cSt() {}
	static void print(void) {obj.print();}
};

// El objeto del tipo clase cInt al ser static debo inicializarlo fuera de la clase, con lo cual debo tener
// en cuenta la derreferenciacion de la clase donde se encuentro y lo mismo para llamar a la funcion del constructor
cInt cSt::obj = cInt::cInt(4);


//
// Main
//

int main(void) {

	cSt objeto;

	objeto.print();

	return 0;
}
